{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--BOOK_INFORMATION-->\n",
    "<img align=\"left\" style=\"padding-right:10px;\" src=\"figures/PHydro-cover-small.png\">\n",
    "*This is the Jupyter notebook version of the [Python in Hydrology](http://www.greenteapress.com/pythonhydro/pythonhydro.html) by Sat Kumar Tomer.*\n",
    "*Source code is available at [code.google.com](https://code.google.com/archive/p/python-in-hydrology/source).*\n",
    "\n",
    "*The book is available under the [GNU Free Documentation License](http://www.gnu.org/copyleft/fdl.html). If you have comments, corrections or suggestions, please send email to satkumartomer@gmail.com.*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!--NAVIGATION-->\n",
    "< [PCA](10.05-PCA.ipynb) | [Contents](Index.ipynb) | [Appendix A: GNU Free Documentation License](11.00-GNU-Free-Documentation-License.ipynb)>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10.6 卡尔曼滤波法\n",
    "\n",
    "卡尔曼滤波(Kalman Filtering)是水文学中常用的工具，它考虑了模型方差和观测误差，试图得到问题的最优解。卡尔曼离散滤波器试图优化的系统由以下方程式给出。\n",
    "\n",
    "<center>$x_{k+1}=Ax_k+Bu_k+w,\\quad\\quad\\quad\\quad\\quad(10.4)$</center>\n",
    "\n",
    "其中，测量值为，\n",
    "\n",
    "<center>$y_{k+1}=Hx_{k+1}+v,\\quad\\quad\\quad\\quad\\quad\\quad\\quad(10.5)$</center>\n",
    "\n",
    "随机变量w和v分别是过程和测量噪音，它们的方差分别为Q和R。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\laihetao\\AppData\\Local\\conda\\conda\\envs\\DataProcess\\lib\\site-packages\\matplotlib\\__init__.py:800: MatplotlibDeprecationWarning: text.fontsize is deprecated and replaced with font.size; please use the latter.\n",
      "  mplDeprecation)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x218530c3f28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# change the default parameters of the plot\n",
    "params = {'text.fontsize': 10}\n",
    "\n",
    "plt.rcParams.update(params)\n",
    "\n",
    "# length of the data\n",
    "n = 100\n",
    "\n",
    "# generate true signal\n",
    "A = 0.9\n",
    "B = 0.5\n",
    "u = 10*np.random.rand(n)\n",
    "H = 1.0\n",
    "x_true = np.empty(n+1)\n",
    "x_true[0] = 15.0 #initial condition\n",
    "for k in range(n):\n",
    "    x_true[k+1] = A*x_true[k]+ B*u[k]\n",
    "\n",
    "#plt.plot(x_true, '--bs', label='x', lw=2)\n",
    "#plt.xlabel('k')\n",
    "#plt.legend(loc='best')\n",
    "#plt.savefig('/home/tomer/svn/python-in-hydrology/images/kalman0.png')\n",
    "#plt.close()\n",
    "\n",
    "# generate signal with noise\n",
    "Q = 0.5\n",
    "R = 5\n",
    "x = np.empty(n+1)\n",
    "x[0] = x_true[0]\n",
    "z = np.empty(n+1)\n",
    "z[0] = np.nan\n",
    "for k in range(n):\n",
    "    # time equation\n",
    "    w = np.sqrt(Q)*np.random.randn(1)\n",
    "    x[k+1] = A*x[k]+ B*u[k] + w\n",
    "    # measurment equation\n",
    "    v = np.sqrt(R)*np.random.randn(1)\n",
    "    z[k+1] = H*x[k+1] + v\n",
    "\n",
    "plt.plot(x_true, 'g', label='x_true', lw=2)\n",
    "plt.plot(x, 'b', label='x', lw=2)\n",
    "plt.plot(z, 'rs', label='z', lw=2)\n",
    "plt.xlabel('k')\n",
    "plt.legend(loc='best')\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "图10.7:进行PCA滞后数据的相关性。所有维度都是非相关的，这是PCA所期望的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x218543d4438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#################### kalman filter #################33\n",
    "x_hat = np.empty(n+1)\n",
    "x_hat_minus = np.empty(n+1)\n",
    "P_minus = np.empty(n+1)\n",
    "kalman_gain = np.empty(n+1)\n",
    "P = np.empty(n+1)\n",
    "\n",
    "kalman_gain[0] = np.nan\n",
    "P[0] = np.nan\n",
    "# initial guess\n",
    "x_hat[0] = 10.0\n",
    "P_minus[0] = 1.0\n",
    "\n",
    "for k in range(n):\n",
    "    # time update\n",
    "    x_hat_minus[k+1] = A*x_hat[k] + B*u[k]\n",
    "    P_minus[k+1] = A*P_minus[k]*A + Q\n",
    "\n",
    "    # measurment update\n",
    "    kalman_gain[k+1] = P_minus[k+1]*H/(H*P_minus[k+1]*H+R)\n",
    "    x_hat[k+1] = x_hat_minus[k+1] + kalman_gain[k+1]*(z[k+1]-H*x_hat_minus[k+1])\n",
    "    P[k+1] = P_minus[k+1] - kalman_gain[k+1]*(H*P_minus[k+1]*H+R)*kalman_gain[k+1]\n",
    "\n",
    "plt.plot(x_true, 'g', label='x_true', lw=2)\n",
    "plt.plot(z, 'rs', label='z', lw=2)\n",
    "plt.plot(x_hat, 'b', label='x_hat', lw=2)\n",
    "plt.xlabel('k')\n",
    "plt.legend(loc='best')\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "图10.18:进行PCA之后数据的相关性。所有维度都是非相关的，这是PCA所期望的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x218530c3a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax1 = fig.add_subplot(111)\n",
    "ax1.plot(kalman_gain, 'r', label='Kalman Gain', lw=10)\n",
    "ax1.set_xlabel('k')\n",
    "ax1.set_ylabel('Kalman Gain', color='r', weight='bold')\n",
    "for tl in ax1.get_yticklabels():\n",
    "    tl.set_color('r')\n",
    "\n",
    "ax2 = ax1.twinx()\n",
    "ax2.plot(P, 'b', label='P', lw=4)\n",
    "ax2.set_ylabel('P', color='b', weight='bold')\n",
    "for tl in ax2.get_yticklabels():\n",
    "    tl.set_color('b')\n",
    "\n",
    "#plt.plot(z, 'rs', label='z', lw=2)\n",
    "#plt.plot(x_hat, 'b', label='x_hat', lw=2)\n",
    "#plt.legend(loc='best')\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "图10.19:进行PCA滞后数据的相关性。所有维度都是非相关的，这是PCA所期望的。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
